Persisting a group in an instant messaging application

ABSTRACT

A system described herein includes a receiver component that receives a request to create a persistent messaging group for an instant messaging application, wherein the request includes an indication of one or more entities that are desired to be members of the persistent messaging group. The system further includes a group creator component that creates the persistent messaging group based at least in part upon the received group creation request, wherein the persistent messaging group is persisted over multiple instant messaging sessions.

BACKGROUND

Instant messaging allows users that use a common instant messagingclient to communicate with one another in real-time. For instance, afirst user of an instant messaging application can transmit text to asecond user of the instant messaging application in real-time, and thesecond user can respond to the first user. Thus, through use of aninstant messaging application, the first and second user can hold areal-time conversation.

Technology pertaining to instant messaging applications has advancedrapidly, as communications between users is not limited solely to text.For instance, an instant messaging application may allow users to sharefiles, including documents, video files, music files, et cetera.Furthermore, an instant messaging application may be configured totransmit real-time video images of participants to an instant messagingconversation. More particularly, a first user may execute an instantmessaging application and may initiate a conversation with a seconduser. The first user may (before or after the conversation has beeninitiated) connect a webcam to a personal computer operated by the firstuser. Video images of the first user may be transferred in real-timesuch that the second user can view video images of the first user duringan instant messaging application. Still further, some instant messagingapplications can be configured to transmit voice signals between usersin real-time, such that users of an instant messaging application mayconduct a voice conversation therebetween. Thus, instant messagingapplications can be robust communication tools that incorporate numerouscommunication functionalities.

Many instant messaging applications are generally downloadable by way ofthe Internet for installation on a client computer. A user of an instantmessaging application can inform the instant messaging application ofcontacts that also use the instant messaging application (or a differentinstant messaging application that is configured to communicate with theaforementioned instant messaging application). Additionally oralternatively, the user of the instant messaging application can causeinvitations to be delivered (e.g., by way of email) to contacts of theuser that have not installed the instant messaging application.

The graphical user interface of the instant messaging application canpresent a list of contacts to a user thereof, and can further indicatewhich of the contacts is online and possibly display a correspondingstatus message that describes a current status of the contact (e.g.,busy, available, away, . . . ). To initiate an instant messagingcommunication with a contact, the user can select the contact (e.g.,double-click) which causes a conversation window to appear. The user maythen initiate a communication by, for example, typing a textual messagethat is desired to be transmitted to the contact. Such message may betransmitted to an instant messaging server and then directed to theinstant messaging client of the contact. If, for example, the contactdoes not have a status indicating that the contact wishes to not bedisturbed, a conversation window will be presented to the contact. Thecontact may then reply to the communication if desired.

Some instant messaging applications also allow communications to besimultaneously transmitted among several users in real-time. Morespecifically, a first user of an instant messaging application mayselect, one at a time, a plurality of other users with whom the firstuser wishes to communicate, wherein the plurality of users are shown asbeing online. The first user can then initiate a communication to allselected users, and the selected users and the first user may thencommunicate with one another simultaneously and in real-time. If one ofthe participants in the conversation closes a conversation windowcorresponding to the plurality of users and the first user, suchparticipant cannot return to the conversation without being invited byone of the remaining participants. Further, if the same individuals wishto simultaneously communicate with one another at a later point in time,one of such individuals must initiate the conversation by manuallyselecting all of the individuals.

SUMMARY

The following is a brief summary of subject matter that is described ingreater detail herein. This summary is not intended to be limiting as tothe scope of the claims.

Described herein are various technologies pertaining to instantmessaging in an instant messaging application. A persistent group can becreated in an instant messaging application that persists acrossmultiple instant messaging sessions. More particularly, an individualusing an instant messaging application on a client device can generate arequest to create a persistent messaging group. The request can includeidentities of other individuals that are desirably in the persistentmessaging group, wherein the identities may be instant messagingidentities, email addresses, et cetera.

An instant messaging server can receive the request and generateinvitations for entities identified in the request to create the instantmessaging group. The invitations can be transmitted to instant messagingapplications executing on client devices that correspond toindividuals/entities identified in the request. For instance, anindividual identified in the request to create the persistent messaginggroup can receive an email invitation and can reply to such invitationindicating acceptance of the invitation to join the persistent messaginggroup. Upon receipt of the acceptance, the individual can be added tothe persistent messaging group. The individual can remain a member ofthe instant messaging group until they request removal from such group.

Messages transmitted to the persistent messaging group can be sent asboth online and offline messages. Furthermore, messages transmitted tothe persistent messaging group can be persisted for later viewing bymembers of the persistent messaging group. For instance, a first memberof the persistent messaging group can transmit a message that is desiredto be received by other members of the persistent messaging group. Suchmessage can be transmitted immediately to members of the persistentmessaging group who are online (e.g., logged into the instant messagingapplication). The message can also be persisted in a data store. When amember of the persistent messaging group who was not online at the timeof initial transmittal of the message comes online, the message can beautomatically provided to the member as an offline message. Furthermore,when a member of the persistent messaging group logs into the instantmessaging application, the member can be provided with messages over athreshold amount of time (to review previous messages pertaining to thegroup).

Other aspects will be appreciated upon reading and understanding theattached figures and description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram of an example system thatfacilitates creating a persistent messaging group in an instantmessaging application.

FIG. 2 is a functional block diagram of an example system thatfacilitates creating a persistent messaging group in an instantmessaging application.

FIG. 3 is a functional block diagram of an example system thatfacilitates transmitting a message to a persistent messaging group in aninstant messaging application.

FIG. 4 is a functional block diagram of an example system thatfacilitates transmitting an offline message to at least one member of apersistent messaging group in an instant messaging application.

FIG. 5 is a functional block diagram of an example system thatfacilitates removing an entity from a persistent messaging group in aninstant messaging application.

FIG. 6 is a functional block diagram of an example system thatfacilitates adding an entity to a persistent messaging group in aninstant messaging application.

FIG. 7 is a functional block diagram of an example system thatfacilitates modifying message parameters in a persistent messaginggroup.

FIG. 8 is a functional block diagram of an example system thatfacilitates creating a persistent messaging group in an instantmessaging application.

FIG. 9 is a functional block diagram of an example system thatfacilitates transmitting messages to a persistent messaging group in aninstant messaging application.

FIG. 10 is a functional block diagram of an example system thatfacilitates modifying a persistent messaging group in an instantmessaging application.

FIG. 11 is a flow diagram that illustrates an example methodology forcreating a persistent instant messaging group in an instant messagingapplication.

FIG. 12 is a flow diagram that illustrates an example methodology fortransmitting a message to members of a persistent messaging group in aninstant messaging application.

FIG. 13 is a flow diagram that illustrates an example methodology fortransmitting an offline message to a member of a persistent messaginggroup in an instant messaging application.

FIG. 14 is a flow diagram that illustrates an example methodology forpresenting a user with an option to transmit a message to a persistentmessaging group in an instant messaging application.

FIG. 15 is a flow diagram that illustrates an example methodology fortransmitting a message to a persistent messaging group in an instantmessaging application.

FIG. 16 is an example graphical user interface that can be used inconnection with an instant messaging application.

FIG. 17 illustrates an example conversation window.

FIG. 18 is an example computing system.

DETAILED DESCRIPTION

Various technologies pertaining to instant messaging in general, andpersistent groups in an instant messaging application in particular,will now be described with reference to the drawings, where likereference numerals represent like elements throughout. In addition,several functional block diagrams of example systems are illustrated anddescribed herein for purposes of explanation; however, it is to beunderstood that functionality that is described as being carried out bycertain system components may be performed by multiple components.Similarly, for instance, a component may be configured to performfunctionality that is described as being carried out by multiplecomponents.

With reference now to FIG. 1, an example system 100 that facilitatescreating a persistent group in an instant messaging application isillustrated. An instant messaging application can be a combination of aninstant messaging client application and an instant messaging server,including communications protocols therebetween. Thus, the instantmessaging application may include a dedicated client-side applicationthat includes interfaces that facilitate communicating to individualsthat also use a version of the client-side application. The instantmessaging application may also include a server-side application thatcan route messages between individuals and/or groups, that can monitorstatus of contacts, amongst other activities. Furthermore, in anexample, the instant messaging application can be a web-based instantmessaging application, wherein the instant messaging application isbuilt into a web browser. The system 100 includes an instant messagingclient 102. The instant messaging client 102 can be instant messagingsoftware installed on a client device and/or can be the client devicetogether with the instant messaging software, such as a personalcomputer, a laptop computer, a personal digital assistant, a mobiletelephone, or other suitable client device.

The instant messaging client 102 can be used by a user to initiate agroup creation request. The group creation request may include anindication of one or more entities that are desirably members of agroup, a name of the group, and/or permissions corresponding to theindividual(s), wherein the one or more entities may be individuals orexisting persistent messaging groups. For instance, the indication ofthe one or more entities may be email addresses corresponding to the oneor more entities, messaging contact aliases of the one or moreindividuals, and/or the like. The permissions may include an indicationof which of the one or more individuals can invite other individuals tojoin the group, an indication of which of the one or more individualscan post certain types of messages to the group, an indication of whichof the one or more individuals can remove other individuals from thegroup, et cetera.

An instant messaging server 104 can receive the group creation requestfrom the instant messaging client 102. For instance, the request can bereceived by the instant messaging server 104 by way of any suitablenetwork, such as the Internet or an intranet. The instant messagingserver 104 includes a receiver component 106 that can be configured toreceive/recognize the group creation request. The instant messagingserver 104 can also include a group creator component 108 that cancreate a persistent messaging group that is based at least in part uponthe received group creation request. The instant messaging server 104can also include a data store 110 that retains the persistent messaginggroup 112, wherein the persistent messaging group 112 is persisted overmultiple instant messaging sessions of members of the group. While thereceiver component 106, the group creator component 108, and the datastore 110 are shown as residing in a single instant messaging server, itis to be understood that one or more of such entities can be located onseparate devices.

As will be described in greater detail below, once the persistentmessaging group 112 is created, members of the group (individualsidentified in the group creation request who have accepted aninvitation) can simultaneously communicate with one another through useof the instant messaging application. For example, a user of the instantmessaging client 102 can initiate the instant messaging client 102 andbe provided with a list of contacts that are represented by icons,wherein the created group is one of the listed contacts (and thusrepresented by one of the icons). By double-clicking on an icon thatrepresents the group, the user of the instant messaging client 102 canbe provided with a conversation window that can be used to transmit amessage simultaneously to members of the group. In an example, themessage can be transmitted only to members of the group who arecurrently on-line (e.g., members who are offline will not receive themessage). In another example, the message can be transmitted to allmembers of the group regardless of whether they are online or offline.For instance, an offline user can be provided with the message uponinitiating an instant messaging client (and thus go online).

A message that is transmitted to the group may include text, images,video files, music, and/or the like. For instance, a member of the groupmay post a video that the member wishes to share with other members ofthe group. In another example, the member of the group may wish tostream audio to other members of the group. Accordingly, numerous typesof messages can be transmitted/received in connection with a messaginggroup.

As noted above, the group is persistent across multiple sessions of theinstant messaging application. For example, a member of the group mayreceive group messages and then log off of the instant messagingapplication at an instant messaging client. When the user initiates theinstant messaging application at the instant messaging client, the usercan interact with the persistent messaging group without having toinvite all members of the group. Moreover, in an example, the user mayreceive instant messages transmitted by other members of the group whilethe user was offline (e.g., not logged into the instant messagingapplication).

In another example, the group creation request need not includeidentities of other individuals. Instead, the group creation request canbe tagged with an indication of interests corresponding to the group,such as “automobiles”, “sports”, or other topics. Moreover, such a groupcreation request need not originate from the instant messaging client102, but instead can be generated at the instant messaging server 104.Thereafter, other users of the instant messaging application can jointhe group. For instance, such a group can be the subject of advertising,may be found via a search tool, etc.

Furthermore, the persistent messaging group 112 can be associated withvarious attributes like an individual instant messaging user, such as adisplay name, a particular display tile, a status (e.g., online,offline), a personal message (which can be set by one or more groupmembers that have requisite permissions), and other attributes. Stillfurther, the persistent messaging group 112 can have a correspondingemail address that can be created for the persistent messaging group 112and can be accessed by a subset of members of the persistent messaginggroup 112.

Referring now to FIG. 2, an example system 200 that facilitates creatinga persistent messaging group is illustrated. The system 200 includes theinstant messaging client 102 that can be configured to create and outputa group creation request in response to user input. The receivercomponent 106 can receive and/or recognize the group creation request.The instant messaging server 104 may also include an invitationcomponent 202 that is configured to generate and output invitations toentities included in the group creation request. In the depictedexample, the invitation component 202 can output invitations to Nentities 204-208 that correspond to N entities identified in the groupcreation request. Pursuant to an example, the invitation component 202can deliver invitations to a subset of the N entities 204-208 by way ofan instant message. For instance, the invitation component 202 cantransmit an instant message to the subset of the N entities, wherein theinstant message can include one or more selectable links, whereinselection of a link can cause an entity to transmit an indication ofacceptance or rejection of the invitation to the instant messagingserver 104.

In another example, the invitation component 202 can deliver invitationsto a subset of the N entities 204-208 by way of an email message. Forinstance, the group creation request can include indications of emailaddresses of a subset of the N entities 204-208. The invitationcomponent 202, in response to receiving the group creation request, cangenerate and transmit an invitation email to a subset of the N entities.The invitation email may include one or more selectable links, whereinselection of a link can cause transmission of an indication ofacceptance or rejection of the invitation to the instant messagingserver 104. In another example, the invitation email may include aninvitation to download an instant messenger application on a clienttogether with an invitation to join the persistent messaging group. Forinstance, the invitation email may include a link to a download page foran instant messenger application. In still yet another example, theinvitation component 202 can deliver invitations to a subset of the Nentities by way of a text message to a mobile telephone, a posting on asocial network web page, or other suitable communication.

Upon receipt of the invitation to join the group from the invitationcomponent 202, the entities 204-208 can respond to such invitation,indicating whether they wish to accept or reject the invitation to jointhe group. Other options for responding to the invitation can include(but are not limited to) an indication that a user wishes to respond ata later time or an indication that the user wishes to block/ignorefuture invitations from the group. The response can be received by theinstant messaging server 104, and the group creator component 106 canupdate the persistent messaging group 112 in the data store 110 uponreceipt of responses from entities amongst the N entities that haveaccepted the invitation. Accordingly, the persistent messaging group 112does not include entities that have either a) declined the invitation,or b) failed to respond to the invitation. Thus, entities that declinethe invitation or fail to respond to the invitation will not receivemessages directed to the group.

Referring now to FIG. 3, an example system 300 that facilitatestransmitting a message to a persistent messaging group is illustrated.The system 300 includes the instant messaging client 102, wherein theinstant messaging client is configured to transmit a group message. Inother words, the instant messaging client 102 can transmit a message tothe persistent messaging group 112. The persistent messaging group 112can include a first entity that uses the instant messaging client 102, asecond entity that uses a second instant messaging client 302, a thirdentity that uses a third instant messaging client 304, and an Nth entitythat uses an Nth instant messaging client 306. Pursuant to an example,all of the N entities may be online (e.g., currently using each one'srespective instant messaging client). Each individual that uses thesecond instant messaging client 302, the third instant messaging client304, and the Nth instant messaging client 306 can be shown as beingonline to the group as such clients 302-306 come online.

The group message output by the instant messaging client 102 can bereceived by the instant messaging server 104. For instance, the receivercomponent 106 can receive the group message and recognize that themessage is desirably disseminated to all entities of the persistentmessaging group 112. The instant messaging server 104 can additionallyinclude a message transmitter component 308, which can access the datastore 110 and determine which entities are members of the persistentmessaging group 112. For instance, the persistent messaging group 112 inthe data store 110 may indicate contact information of members of thepersistent messaging group 112. The message transmitter component 308may transmit the group message to each member of the group who iscurrently online (e.g., using that member's respective instant messagingclient). Furthermore, the message transmitter component 308 can causethe message to be retained in the data store 110 (or other data store)as persisted messages 310. Thus, when a member of the group logs ontothe instant messaging application at a client device and a conversationwindow pertaining to the group is open, such conversation window canpresent new messages as they are transmitted in real-time as well asmessages previously received. Furthermore, the data store 110 can retainother group information that can be used in connection with groupcommunications, such as a visual background pattern for the group,wherein a conversation window corresponding to the group can include thebackground pattern.

In another example, the instant messaging client 102 can transmit aninstant message to a member of the group that is not among contacts ofan individual using the instant messaging client 102. For instance, theindividual (individual A) can use the instant messaging client 102 totransmit a message to another individual (individual B) by way of thepersisted group 112 by selecting individual B in a listing of members ofthe group. A message transmitted in such a manner may have a format of“To: user B via: persisted group 112”.

With reference now to FIG. 4, an example system 400 that facilitatestransmitting a message to a group member that was originally submittedwhen the group member was offline (e.g., not logged into an instantmessaging application at a client device) is illustrated. The system 400includes the instant messaging client 102, wherein the instant messagingclient 102 is transitioning from an offline to an online status. Forinstance, an individual corresponding to the instant messaging client102 may have previously exited the instant messaging client. In anexample, the individual may be a member of a persistent messaging group.During a time period when the instant messaging client was offline, amember of the persistent messaging group may have transmitted a groupmessage (e.g., a message intended for all members of the group). Asnoted previously, transmitted messages directed towards the group may beretained as persisted messages 310 in the data store 110.

The instant messaging server 104 can receive an indication that theinstant messaging client 102 has logged in (the instant messaging client102 has gone online). For instance, the receiver component 106 canreceive an indication that the instant messaging client 102 has goneonline. An offline message transmitter 402 can receive such anindication from the receiver component 106, and can access the persistedmessages 310 in the data store 110, and transmit messages to the instantmessaging client 102 that were originally transmitted by a member of thegroup when the instant messaging client 102 was offline. For instance,the offline message transmitter 402 can transmit only messages notpreviously received by the instant messaging client 102. In anotherexample, the offline message transmitter 402 can transmit messagestransmitted by a group member while the instant messaging client 102 wasoffline as well as previously received messages (e.g., sent within adefined time window).

Referring now to FIG. 5, an example system 500 that facilitates removinga member of a persistent messaging group is illustrated. The system 500includes the instant messaging client 102, wherein the instant messagingclient 102 is used by an individual that is a member of the persistentmessaging group 112. Such individual, however, may no longer wish toreceive messages from the group (e.g., the individual may no longer wishto be a member of the persistent messaging group 112). The individualcan cause the instant messaging client 102 to transmit a removalrequest, which indicates that the individual no longer wishes to be amember of the persistent messaging group 112. The instant messagingserver 104 can receive such request.

For instance, the receiver component 106 can receive the removal requestand can recognize such removal request. A remover component 502 can bein communication with the receiver component 106 and can receive theremoval request. The remover component 502 can access the data store 110and modify the persistent messaging group 112 to cause the individualcorresponding to the instant messaging client 102 to be removed from thepersistent messaging group 112. Upon being removed from the persistedinstant messaging group 112, the individual may no longer receivemessages transmitted from other instant messaging clients that aredirected towards the group.

In another example, a first individual corresponding to the instantmessaging client 102 may have privileges to remove a second individualfrom the persistent messaging group 112. For instance, the firstindividual may wish to remove a second individual that corresponds tothe second instant messaging client 302 from the persistent messaginggroup 112. The first individual may cause the first instant messagingclient 102 to transmit a request to remove the second individual fromthe persistent messaging group 112. The receiver component 106 in theinstant messaging server 104 can receive and recognize the request. Theremover component 502 may access the data store 110 and cause the secondindividual to be removed from the persistent messaging group 112 inresponse to receiving the removal request. The remover component 502 canalso transmit a notice to the second instant messaging client 302 toinform the second individual that they have been removed from thepersistent messaging group 112.

In still yet another example, the remover component 502 may remove anindividual upon receiving an indication from a plurality of othermembers in the persistent messaging group 112 indicating that theplurality of other members wishes to remove the individual from thepersistent messaging group 112. For instance, the remover component 502can remove an individual from the persistent messaging group 112 uponreceiving an indication from a majority of members of the persistentmessaging group that the individual is desirably removed from thepersistent messaging group 112.

Furthermore, while the above examples describe removing individuals, itcan also be understood that the remover component 502 can be configuredto remove a persistent messaging group from the persistent messaginggroup 112. For instance, as noted above, the persistent messaging group112 can include individuals and/or other persistent messaging groups.Accordingly, an individual that has appropriate permissions can requestthat an entire group be removed from the persistent messaging group 112,and the remover component 502 can access the data store 112 and causeremoval of the entire group.

Turning to FIG. 6, an example system 600 that facilitates adding anindividual to a persistent messaging group is illustrated. In anexample, the first instant messaging client 102 may be used by a firstindividual that is member of the persistent messaging group 112, whereinthe first individual can have permissions to invite other individualsand/or groups to join the existing persistent messaging group 112. Thefirst individual can cause the first instant messaging client 102 totransmit a request to add a second individual to the persistentmessaging group 112. For instance, the first individual can cause thefirst instant messaging client 102 to output an add request. The addrequest can include an identification of at least one individual orgroup, such as an email address or other suitable unique identification.

The receiver component 106 in the instant messaging server 104 canreceive the request and recognize that the request is an add request. Anadder component 602 can receive the add request and transmit aninvitation to join the persistent messaging group 112 to the instantmessaging client(s) that correspond to individuals and/or groupsidentified in the add request. In an example, the first individualcorresponding to the first instant messaging client 102 can output anadd request indicating that a second individual corresponding to thesecond instant messaging client 302 is desired to be added to thepersistent messaging group 112. The adder component 602 can receive suchrequest and output an invitation that is directed to the secondindividual (e.g., an email message, an instant message, a text message,. . . ). The second individual can respond to the invitation, and theresponse can be received by the adder component 602. If the secondindividual accepts the invitation, the adder component 602 can accessthe data store 110 and cause the second individual to be added to thepersistent messaging group 112. Accordingly, the second individual canreceive messages that are transmitted to the persistent messaging group112 (e.g., at the second instant messaging client 302) and can transmitmessages to the persistent messaging group 112.

In another example, the first individual corresponding to the firstinstant messaging client 102 may not be a member of the persistentmessaging group 112, but may wish to join the group. Accordingly, thefirst individual can cause the first instant messaging client 102 totransmit a request to be added to the persistent instant messaging group112 (e.g., the first individual can identify the persistent messaginggroup by way of a unique identifier). The receiver component 106 in theinstant messaging server 104 can receive and recognize the request, andthe adder component 602 can transmit a request to allow the firstindividual to join the persistent messaging group 112 to at least oneother member of the persistent messaging group 112. For instance, theadder component 602 can transmit an instant message to the secondinstant messaging client 302 that indicates that the first individualdesires to join the persistent messaging group 112, wherein a secondindividual that is a member of the persistent messaging group 112 usesthe second instant messaging client.

The second instant messaging client 302 can be used to respond to thereceived instant message indicating whether the second individual wishesto allow the first individual to join the persistent messaging group112. The adder component 602 can receive the response from the secondinstant messaging client 302 and, if the second individual wishes toallow the first individual to join the persistent messaging group 112,the adder component 602 can access the data store 110 and cause thefirst individual to be added to the persistent messaging group 112. Inanother example, the adder component 602 can transmit requests to allowmembers to join a group in other message formats, such as by way ofemail.

Turning now to FIG. 7, an example system 700 that facilitates providingpermissions corresponding to group messaging to an instant messagingclient is illustrated. The system 700 includes the instant messagingclient 102 that is used by an individual that is a member of thepersistent messaging group 112. The individual initiates the instantmessaging client 102 on a client computing device, and the instantmessaging client 102 outputs login information. The instant messagingserver 104 receives the login information and authenticates theindividual. For example, the receiver component 106 can receive thelogin information, and an authentication component 702 can authenticatethe login information (e.g., analyze the username and password).

Upon the login information being authenticated, a permission analyzercomponent 704 can determine permissions of the individual with respectto the persistent messaging group 112. For instance, different membersof the persistent messaging group 112 may have different permissions toperform disparate actions. In an example, the permission analyzercomponent 704 can determine that the individual has permission to inviteothers to join the persistent messaging group 112, to set a backgroundof conversation windows pertaining to the persistent messaging group112, and to create shared folders (e.g., folders that are accessible bymembers of the persistent messaging group 112). The instant messagingserver 104 can direct permission information to the instant messagingclient 102, and the instant messaging client 102 can be configured inaccordance with the permission information. For instance, certain iconsmay be enabled and/or particular icons may be disabled with respect tothe persistent messaging group 112 in a graphical user interface of theinstant messaging client 102.

In another example, the permission analyzer component 704 can ascertainthat the individual has permission to add a shared folder that isaccessible to other members of the persistent messaging group 112, butdoes not have permission to invite others to join the persistentmessaging group 112. Again, the instant messaging server 104 cantransmit permission information to the instant messaging client 102, andthe instant messaging client 102 can be configured based at least inpart upon the permissions.

In yet another example, permission analyzer component 704 can determinethat the individual does not have permission to invite anotherindividual to join the persistent messaging group 112, does not havepermission to create a new shared folder for the persistent messaginggroup 112, and does not have permission to set a background forconversation windows pertaining to the persistent messaging group 112.Instead, the permission analyzer component 704 can ascertain that theindividual has permission to post messages (including audio and videofiles) and add files to pre-existing shared folders. Again, the instantmessaging server 104 can transmit such permission information to theinstant messaging client 102, and the instant messaging client 102 canbe configured based at least in part upon the permissions. While variousexamples of possible permissions have been provided herein, it is to beunderstood that other permissions are contemplated.

Now turning to FIG. 8, an example system 800 that facilitates creating apersistent messaging group is illustrated. The system 800 includes theinstant messaging client 102 that is used by an individual who wishes tocreate a persistent messaging group (e.g., a group that includes aplurality of individuals that will persist over multiple instantmessaging sessions). In this example, the instant messaging client 102includes a user command receiver component 802 that receives a usercommand to create a persistent messaging group. For instance, the usermay employ a drop-down menu made available by way of the instantmessaging client 102 to inform the instant messaging client of a desireto create a persistent messaging group. The user command may include aproposed name of the persistent messaging group, proposed members of thepersistent messaging group, and/or permissions corresponding to one ormore of the proposed members. For instance, to identify proposedmembers, the user may import contacts from an email application. Inanother example, to identify proposed members, the user may importcontacts from a social network site. Other manners for the user toidentify proposed members are contemplated and intended to fall underthe scope of the hereto-appended claims.

The instant messaging client 102 can additionally include a groupcreation requester component 804 that can request creation of thepersistent messaging group based upon user command(s) received by theuser command receiver component 802. For example, the group creationrequester component 804 can format data in a suitable format andtransmit a group creation request to the instant messaging server 104.The instant messaging server 104 can act to create the persistentmessaging group as described above.

Turning now to FIG. 9, an example system 900 that facilitatescommunicating by way of an instant messaging application to a persistentmessaging group is illustrated. The system 900 includes the instantmessaging client 102 that is in communication with the instant messagingserver 104. In this example, the instant messaging client 102 includes agroup display component 902. The group display component can cause theinstant messaging client 102 to display a graphical indication ofexistence of at least one persistent messaging group to a user (e.g.,the user is a member of the at least one persistent messaging group).The graphical indication may be an icon, text, a combination of an iconand text, or other suitable graphical indication. Furthermore, the groupdisplay component 902 can cause a status of the persistent messaginggroup to be displayed, such as whether the group (collectively) isoffline, whether the group is busy, idle, et cetera.

The instant messaging client 102 can also include the user commandreceiver component 802, which can receive input from the user, such asthrough employment of a mouse or keyboard. In an example, the usercommand receiver component 802 can receive input indicating that theuser has selected a particular group that is displayed by the groupdisplay component 902. Such selection, for instance, may initiateprovision of a conversation window to the user, wherein the conversationwindow can be used to communicate with members of the group.

The instant messaging client 102 can also include a group messagetransmitter component 904 that can transmit a message from the user tothe group. For instance, the user can enter a message into aconversation window pertaining to the group. The user command receivercomponent 802 can receive a command to transmit the message, and thegroup message transmitter component 904 can transmit the message inresponse to the received command. The group message transmittercomponent 904 can transmit the group message to the instant messagingserver 104, which can then transmit the message to members of the groupwho are online and/or persist the messages in a data store (e.g., foroffline messaging).

The instant messaging client 102 can further include a group messagereceiver component 906 that can be configured to receive messagesdirected towards the group from a different member of the group. Forinstance, a member of group may reply to a previous group message, andthe group message receiver component 906 can be configured to receivethe reply from the instant messaging server 104. A group message displaycomponent 908 can display group messages received by the group messagereceiver component 906. For instance, the group message displaycomponent 908 can cause a conversation window to be displayed at theinstant messaging client 102. In another example, the group messagedisplay component 908 can cause text or graphics to be displayed in anexisting conversation window pertaining to a persistent messaging group.In yet another example, the group message display component 908 can beconfigured to present audio and/or video information to a user that istransmitted to the instant messaging client 102.

With reference now to FIG. 10, an example system 1000 that facilitatesaltering information pertaining to a persistent messaging group isillustrated. The system 1000 includes the instant messaging client 102,wherein the instant messaging client 102 is in communication with theinstant messaging server 104. The instant messaging client 102 includesthe user command receiver component 802, which can receive a commandindicating that the user would like to modify the persistent messaginggroup and/or modify content of messages deliverable to members of thepersistent messaging group. For instance, the user command receivercomponent 802 may receive a user command indicating that the user wishesto invite another entity to join the persistent messaging group. Inanother example, the user command receiver component 802 can receive auser command indicating that the user wishes to change a background in aconversation window pertaining to the persistent messaging group (e.g.,wherein the background will be common to conversation windows of allmembers of the persistent messaging group). For instance, the user caninitiate the command by selecting particular commands that aregraphically represented in the instant messaging client 102, throughselection of pull-down menus, et cetera.

The instant messaging client 102 also includes a group modifierrequester component 1002 that can transmit group modification requests(initiated by the user through the user command receiver component 802).The group modifier requester component 1002 can be configured totransmit the request to the instant messaging server 104 in a suitableformat. Requests that can be transmitted by the group modifier requestercomponent 1002 include but are not limited to a request to invite one ormore additional entities to join the group, a request to be removed fromthe group, a request that another entity to be removed from the group, arequest to set a background for the group, a request to add or delete ashared folder pertaining to the group, et cetera. The instant messagingserver 104, as described above, can include components that act toprocess such requests.

The instant messaging client 102 can also include a permissiondeterminer component 1004 that can determine permissions of the usercorresponding to the instant messaging client 102. For instance, thepermission determiner component 1004 can determine that the user doesnot have permission to invite others to join the persistent messaginggroup, and therefore such option may be unavailable to the user (e.g.,grayed out).

While the examples described herein illustrate an instant messagingclient that is used by a user in a persistent messaging groupcommunicating with other group members by way of an instant messagingserver, it is to be understood that the systems and methods describedherein can be adapted for use in a peer-to-peer environment. Forinstance, an instant messaging application installed at a client devicecan include functionality that allows the client device to act as aclient and a server. In another example, messages can be persisted atclient devices, and group information can be persisted at client devices(in addition to or alternatively to retaining persisted messages andgroup information at a central location).

With reference now to FIGS. 11-15, various example methodologies areillustrated and described. While the methodologies are described asbeing a series of acts that are performed in a sequence, it is to beunderstood that the methodologies are not limited by the order of thesequence. For instance, some acts may occur in a different order thanwhat is described herein. In addition, an act may occur concurrentlywith another act. Furthermore, in some instances, not all acts may berequired to implement a methodology described herein.

Moreover, the acts described herein may be computer-executableinstructions that can be implemented by one or more processors and/orstored on a computer-readable medium or media. The computer-executableinstructions may include a routine, a sub-routine, programs, a thread ofexecution, and/or the like. Still further, results of acts of themethodologies may be stored in a computer-readable medium, displayed ona display device, and/or the like.

Referring now to FIG. 11, an example methodology 1100 for creating apersistent messaging group is illustrated. The methodology 1100 startsat 1102, and at 1104 a request is received to include a plurality ofentities in an instant messaging group for an instant messagingapplication. In an example, the request may be a request to includethree or more entities in an instant messaging group, wherein an entitymay be an individual or a group of individuals.

At 1106, a persistent instant messaging group is created in response tothe received request. For example, the persistent instant messaginggroup can be persisted over multiple instant messaging sessions.Furthermore, the persistent messaging group can include three or moreentities. It is to be understood, however, that a persistent messaginggroup may include as few as one entity (where the group persists, butmembership to the group can change).

After the persistent messaging group has been created, a client devicecan be configured to indicate to a user that the user belongs to thepersistent messaging group. For instance, data can be transmitted to atleast one client device that corresponds to at least one entity in thepersistent messaging group, wherein the client device runs the instantmessaging application. Pursuant to an example, the transmitted data canbe configured to cause the instant messaging application to display anindicator that is representative of the persistent instant messaginggroup at the client device (e.g., an icon, text, or some combinationthereof). In an example, the client device may be a personal computer, alaptop computer, a smart phone, a personal digital assistant, or othersuitable device. The methodology 1100 completes at 1108.

Now referring to FIG. 12, an example methodology 1200 for transmittingmessages to a persistent messaging group is illustrated. The methodology1200 starts at 1202, and at 1204 an instant message is received from afirst entity in a persistent messaging group by way of an instantmessaging application, wherein the instant message is directed to thepersistent messaging group. At 1206, the instant message is transmittedto a subset of the instant persistent messaging group (e.g., members ofthe instant messaging group who are logged into the instant messagingapplication). In an example, the received instant message can betransmitted as an offline message to members of the persistent messaginggroup who were not logged into the instant messaging application whenthe instant message was initially received. The methodology 1200 thencompletes at 1208.

Referring now to FIG. 13, an example methodology 1300 for transmitting amessage to a persistent messaging group is illustrated. The methodology1300 starts at 1302, and at 1304 a message is received that is desirablytransmitted to members of a persistent messaging group (e.g., amessaging group that is persisted over multiple instant messagingsessions). The message can include textual, pictorial, audio, and/orvideo content. At 1306, the message is delivered to each member of thepersistent messaging group who is online (e.g., logged into an instantmessaging application).

At 1308, the received message is retained in a data store. For instance,the data store may reside at an instant messaging server. At 1310, adetermination is made that a member of the group who has not receivedthe message (e.g., a member of the group who was offline when themessage was initially received) has gone online (e.g., logged into theinstant messaging application). At 1312, the message is transmitted tothe member of the group. Thus, group members may communicate with thegroup by way of offline messaging. The methodology 1300 then completesat 1314.

With reference now to FIG. 14, an example methodology 1400 fordisplaying information to a user is illustrated. The methodology 1400starts at 1402, and at 1404 login information is received from a userwho is logging into an instant messaging application at an instantmessaging client. For instance, the user may provide a username andpassword to log into the instant messaging application. At 1406 adetermination is made that the user is a member of a persistentmessaging group. At 1408, an indicator is displayed to the user, whereinthe indicator is representative of the persistent messaging group. Themethodology 1400 completes at 1410.

Now referring to FIG. 15, an example methodology 1500 for transmittinginstant messages to persistent group members is illustrated. Themethodology 1500 starts at 1502, and at 1504 a request to create apersistent messaging group in an instant messaging application isreceived from an instant messaging client. At 1506, an invitation tojoin the persistent messaging group is transmitted to a plurality ofindividuals.

At 1508, at least one response is received from at least one individualin the plurality of individuals, wherein the response indicates that theat least one individual has accepted the invitation. At 1510, thepersistent messaging group is created. At 1512, an instant message isreceived that is intended for the persistent messaging group (e.g., amessage transmitted by a member of the persistent messaging group).

At 1514, a determination is made regarding whether the at least oneindividual is currently online (e.g., logged into the instant messagingapplication). If the individual is online, the instant message isimmediately transmitted to the at least one individual at 1516. If theindividual is not currently online, at 1518 the instant message ispersisted in a data store (for example, a data store corresponding to aninstant messaging server). It is to be understood, however, that theinstant message can be retained in a data store regardless of whether ornot the user is currently online. At 1520, the message is transmitted tothe at least one individual when the at least one individual goes online(e.g., logs into the instant messaging application). The methodology1500 completes at 1522.

Now turning to FIG. 16, an example graphical user interface 1600 of aninstant messaging application is illustrated. The graphical userinterface 1600 pertains to an instant messaging client application thatexecutes on a client device. Further, the graphical user interface 1600can pertain to a particular individual.

The graphical user interface 1600 includes a tile 1602 that can be usedto identify an individual corresponding to the graphical user interface1600. Accordingly, the tile can be a picture of the individual, agraphic selected by the individual, etc. The graphical user interface1600 can also include a plurality of selectable buttons 1604, whereinselection of a button can initiate a particular functionality. Forinstance, selection of one of the buttons may initiate opening an emailinbox, selection of one of the buttons may initiate viewing sharingfolders, selection of one of the buttons may initiate a voiceconversation via the instant messaging application, et cetera.

The graphical user interface 1600 may also include a search field 1606,wherein the search field 1606 is configured to receive a search query.The user, after entering text into the search field 1606, may initiate asearch by depressing a particular key on a keyboard (e.g., an “enter”key), by selecting a button the graphical user interface 1600, and/orother suitable manner for initiating a search. Upon initiating thesearch, the instant messaging application can initiate a web browserthat can display search results.

The graphical user interface 1600 can also include a plurality ofdepressible buttons 1608 that can initiate various functionalities, openweb browsers, and/or provide the user with particular information. Forexample, selection of one of the buttons 1608 can initiate helpinformation to be displayed in the graphical user interface 1600,selection of another one of the buttons 1608 may initiate provision offinancial information (e.g., real-time stock quotes) by way of thegraphical user interface 1600, and selection of yet another one of thebuttons 1608 may initiate information pertaining to a social networkingsite or online dating site. Other functionalities/information are alsocontemplated.

The graphical user interface 1600 can also include a contacts window1610 that displays instant messaging contacts of the user who is usingthe graphical user interface 1600. As described herein, the contactswindow 1610 can display individual contacts as well as persistentgroups. For instance, the contacts window 1610 can display icons thatare representative of individual contacts of the user as well as one ormore icons that are representative of persistent group contacts of theuser. Each of the contacts can be selected by the user, which caninitiate a conversation window, wherein the user can send a message tothe selected contact (which can be a group) by way of the conversationwindow.

The graphical user interface 1600 can also include a plurality ofbuttons 1612 that can be used to sort contacts displayed in the contactswindow 1610. For instance, depression of one of the buttons 1612 maycause contacts to be displayed alphabetically. In another example,depression of one of the buttons 1612 may cause persistent messaginggroups to be displayed in a first location and individual contacts to bedisplayed in a second location. In yet another example, depression ofone of the buttons 1612 may initiate adding a contact and/or creating agroup.

Now referring to FIG. 17, an example persistent group conversationwindow 1700 is illustrated. The conversation window 1700 includes amessage window 1702 that can display messages transmitted to the group(or group members) by group members. In addition, the message window1702 can display files that are submitted by members of the persistentmessaging group as well as a background that can be common for membersof the instant messaging group. In one example, the background can be acollage of tiles of members of the persistent messaging group. Inanother example, the background can be selected by a member ofpersistent messaging group who has privileges to set backgrounds.

The conversation window 1700 can also include a message transmittalwindow 1704, wherein a user of the conversation window 1700 can entertext and/or drag and drop files into the message transmittal window1704. The conversation window 1700 can also include a send button 1706,wherein upon depression of the send button 1706 data in the messagetransmittal window 1704 can be transmitted to the persistent messaginggroup (e.g., transmitted to each member of the persistent messaginggroup, either as an online or an offline message).

The conversation window 1700 can also include a group members and statuswindow 1708, which can display, for instance, identities of each memberof the persistent messaging group and their current status (e.g.,available, busy, offline, . . . ). In an example, if desirable, the usercan select an individual member in the group members and status window1708, which can initiate a new conversation window that is configured tosend and receive messages from the selected individual member only (andnot other members of the group).

The conversation window 1700 can also include a group tile 1710 that canbe a tile that graphically identifies the group. For instance, the grouptile 1710 can be selected by a member of the persistent messaging groupwho has privileges to set content for the group tile 1710. Theconversation window 1700 can also include a personal tile 1712, whichcan be set by the individual using the conversation window 1700.

The conversation window 1700 can also include a plurality of selectablebuttons 1714, wherein selection of one of the buttons initiatesparticular functionality corresponding to the conversation window 1700.For instance, selection of one of the buttons may initiate creating ashared folder and/or viewing a shared folder. In another example,selection of one of the buttons 1714 may initiate a voice communicationto all members of the persistent messaging group. In yet anotherexample, selection of one of the buttons 1714 may initiate sharing amusic file with members of the persistent messaging group.

Now referring to FIG. 18, a high-level illustration of an examplecomputing device 1800 that can be used in accordance with the systemsand methodologies disclosed herein is illustrated. For instance, thecomputing device 1800 may be used in a system that can be used toreceive and transmit instant messages pertaining to a persistentmessaging group and/or used to retain data pertaining to an instantmessaging group. The computing device 1800 includes at least oneprocessor 1802 that executes instructions that are stored in a memory1804. The instructions may be, for instance, instructions forimplementing functionality described as being carried out by one or morecomponents discussed above or instructions for implementing one or moreof the methods described above. The processor 1802 may access the memory1804 by way of a system bus 1806. In addition to storing executableinstructions, the memory 1804 may also store data pertaining to apersistent messaging group, identities, background schemes to bedisplayed in conversation windows, etc.

The computing device 1800 additionally includes a data store 1808 thatis accessible by the processor 1802 by way of the system bus 1806. Thedata store 1808 may include executable instructions, data pertaining toa persistent messaging group, et cetera. The computing device 1800 alsoincludes an input interface 1810 that allows external devices tocommunicate with the computing device 1800. For instance, the inputinterface 1810 may be used to receive instructions from an externalcomputer device, receive instant messages to be transmitted, et cetera.The computing device 1800 also includes an output interface 1812 thatinterfaces the computing device 1800 with one or more external devices.For example, the computing device 1800 may transmit data to a personalcomputer by way of the output interface 1812.

Additionally, while illustrated as a single system, it is to beunderstood that the computing device 1800 may be a distributed system.Thus, for instance, several devices may be in communication by way of anetwork connection and may collectively perform tasks described as beingperformed by the computing device 1800.

As used herein, the terms “component” and “system” are intended toencompass hardware, software, or a combination of hardware and software.Thus, for example, a system or component may be a process, a processexecuting on a processor, or a processor. Additionally, a component orsystem may be localized on a single device or distributed across severaldevices.

It is noted that several examples have been provided for purposes ofexplanation. These examples are not to be construed as limiting thehereto-appended claims. Additionally, it may be recognized that theexamples provided herein may be permutated while still falling under thescope of the claims.

1. A system, comprising the following computer-executable components: areceiver component that receives a request to create a persistentmessaging group for an instant messaging application, wherein therequest includes an indication of one or more entities that are desiredto be members of the persistent messaging group; and a group creatorcomponent that creates the persistent messaging group based at least inpart upon the received group creation request, wherein the persistentmessaging group is persisted over multiple instant messaging sessions.2. The system of claim 1, wherein an instant messaging server comprisesthe receiver component and the group creator component.
 3. The system ofclaim 1, further comprising an invitation component that is configuredto output invitations to entities included in the request, wherein thegroup creator component updates the persistent messaging group uponreceipt of a response to an invitation output by the invitationcomponent.
 4. The system of claim 3, wherein the invitations include atleast one of an email invitation or an instant message invitation. 5.The system of claim 1, wherein the receiver component 106 receives agroup message and recognizes that the message is desired to bedisseminated to all entities of the persistent messaging group, andfurther comprising a message transmitter component that transmits thegroup message to each member of the persistent messaging group who isonline.
 6. The system of claim 5, further comprising a data store,wherein the message transmitter component causes the group message to beretained in the data store as a persisted message.
 7. The system ofclaim 6, further comprising an offline message transmitter that receivesan indication that a first member of the persistent messaging group hascome online, accesses the persisted message in the data store, andtransmits the persisted message to the first member of the persistentmessaging group, wherein the first member of the instant messaging groupwas offline when the receiver component received the group message. 8.The system of claim 1, wherein the receiver component receives a requestfrom a member of the persistent messaging group to be removed from thepersistent messaging group, and further comprising a remover componentthat modifies the persistent messaging group to cause the member to beremoved from the persistent messaging group based at least in part uponthe request to be removed from the persistent messaging group.
 9. Thesystem of claim 1, wherein the receiver component receives a request toadd an individual to the persistent messaging group, and furthercomprising: an adder component that, in response to the request to addthe individual to the persistent messaging group, transmits aninvitation to join the persistent messaging group to the individual. 10.A method comprising the following computer-executable acts: receiving arequest to include a plurality of entities in an instant messaging groupin an instant messaging application; and creating a persistent instantmessaging group in response to the received request, wherein thepersistent instant messaging group includes the plurality of entities,wherein the persistent instant messaging group is automaticallypersisted across multiple sessions of use of the instant messagingapplication.
 11. The method of claim 10, further comprising: receivingan instant message from a first entity in the persistent instantmessaging group by way of the instant messaging application, wherein thereceived instant message is directed to the persistent instant messaginggroup; and transmitting the received instant message to at least eachmember of the persistent messaging group who is logged into the instantmessaging application.
 12. The method of claim 11, further comprisingtransmitting the received instant message as an offline message to eachmember of the persistent messaging group who is not logged into theinstant messaging application.
 13. The method of claim 10, furthercomprising transmitting data to at least one client device thatcorresponds to at least one entity in the persistent instant messaginggroup, wherein the transmitted data is configured to cause the instantmessaging application to display an indicator on the client device thatis representative of the persistent instant messaging group.
 14. Themethod of claim 13, wherein the client device is one of a smart phone, apersonal digital assistant, a personal computer, or a laptop computer.15. The method of claim 10, wherein at least one of the plurality ofentities is an individual.
 16. The method of claim 10, wherein at leastone of the plurality of entities is a second persistent instantmessaging group.
 17. The method of claim 10, further comprising:receiving a request to remove a first entity from the plurality ofentities from the persistent instant messaging group; and removing thefirst entity from the persistent instant messaging group.
 18. The methodof claim 10, further comprising: receiving a request from an entity tobe added to the persistent instant messaging group; and in response toreceiving the request, adding the entity to the persistent instantmessaging group.
 19. The method of claim 10, further comprising:receiving a request to add a first entity to the persistent instantmessaging group from a second entity in the plurality of entities; andin response to receiving the request, adding the first entity to thepersistent instant messaging group.
 20. A computer-readable mediumcomprising instructions that, when executed by a processor, perform thefollowing acts: receive a request to create a persistent messaging groupin an instant messaging application from an instant messaging client,wherein the persistent messaging group includes identities of aplurality of individuals that are desirably invited to join thepersistent messaging group; transmit invitations to join the persistentmessaging group to the plurality of individuals; receive at least oneresponse from at least one individual from the plurality of individuals,wherein the at least one response is an acceptance to an invitationtransmitted to the at least one individual; create the persistentmessaging group, wherein the persistent messaging group is persistedover multiple instant messaging sessions, wherein the persistentmessaging group includes the at least one individual; receive a messagethat is intended for the persistent messaging group; if the at least oneindividual is logged into the instant messaging application, immediatelytransmitting the received message to the at least one individual by wayof the instant messaging application; and if the at least one individualis offline: transmitting the message to the at least one individual whenthe at least one individual logs into the instant messaging application.